/**
 * PHOSIDE: PHosphorylation Site IDentification Engine.
 * Copyright 2009 Digital Biology Lab, University of Missouri.
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 3 of the License, or (at your option) any later
 * version. <p/> This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more
 * details.
 */

package phoside.classify.result;

import java.util.List;

import phoside.PhosphoProteins;

/**
 *
 * @author gjj
 */
public interface PhosidePredictionResult extends PhosphoProteins {

    /**
     *
     * @return
     */
    public ResultInterpreter getResultInterpreter();

    /**
     * 
     * @param resInt
     */
    public void setResultInterpreter(ResultInterpreter resInt);

    /**
     *
     * @param accession
     * @return
     */
    public List<Double> getPredictions(String accession);

    public double getThrehold();

    /**
     *
     * @param accession
     * @param predictions
     */
    public void setPrediction(String accession, int site, double prediction);

    /**
     * 
     * @param accession
     * @param predictions
     */
    public void setPredictions(String accession, List<Double> predictions);

    /**
     * 
     * @param threshold
     */
    public void setThreshold(double threshold);

    /**
     * Copy all proteins to result and return, if result is null, return the result.
     * @param result
     * @param phosphoOnly
     * @param alphabetical
     */
    public PhosidePredictionResult copyTo(PhosidePredictionResult result,
            boolean phosphoOnly, boolean alphabetical);

    public List<Double> descendPredictionScores();

}
